تاريخ النشر: 28 أيار (مايو) 2025
تنطبق التغييرات التالية على أحدث إصدار من الإصدار التمهيدي ل Chrome على أجهزة Android وChromeOS وLinux وmacOS وWindows، ما لم يُذكر خلاف ذلك. يمكنك الاطّلاع على مزيد من المعلومات عن الميزات المدرَجة هنا من خلال الروابط المقدَّمة أو من القائمة على ChromeStatus.com. أصبح الإصدار 138 من Chrome إصدارًا تجريبيًا اعتبارًا من 28 أيار (مايو) 2025. يمكنك تنزيل الإصدار الأحدث من الإصدار على Google.com لأجهزة الكمبيوتر المكتبي أو على متجر Google Play على أجهزة Android.
CSS وواجهة المستخدم
يضيف هذا الإصدار ست ميزات جديدة لتنسيق CSS وواجهة المستخدم.
الكلمة الرئيسية لتحديد الحجم stretch
في CSS
كلمة رئيسية لخصائص ضبط الحجم في CSS (مثل width
وheight
) التي تسمح
للعناصر بالنمو لملء المساحة المتاحة في البلوك الذي يحتوي عليها
بالضبط وهو مشابه لـ 100%
، باستثناء أنّ الحجم الناتج يُطبَّق على صندوق هامش العنصر بدلاً من المربّع الذي يشير إليه box-sizing
. يتيح استخدام هذه الكلمات
الرئيسية للعنصر الاحتفاظ بهوامشه مع الحفاظ على أكبر حجم ممكن.
الدوالّ ذات الصلة بعلامات CSS: abs()
وsign()
تحسب الدالتان abs()
وsign()
اللتان ترتبطان بالإشارة دوال مختلفة
ترتبط بإشارة وسيطتهما.
متغيّر بيئة CSS لمقياس الخط على مستوى نظام التشغيل
تعرِض هذه السمة مقياس الخط المفضّل للمستخدم في CSS. في الوقت الحالي، ليس من العملي أن ترصد الصفحة ما إذا كان المستخدم قد غيّر حجم الخط المفضّل لديه باستخدام ملفவதَف النظام التشغيلي. سيعكس متغيّر بيئة CSS هذا القياس الذي اختاره المستخدم.
sibling-index()
وsibling-count()
من CSS
يمكن استخدام الدالتَين sibling-index()
وsibling-count()
كأرقام صحيحة في
قيم سمات CSS لتنسيق عنصر استنادًا إلى موقعه بين
العناصر الشقيقة، أو إجمالي عدد العناصر الشقيقة على التوالي. يمكن استخدام هذه الدوالّ
بشكل مباشر كقيم عددية، ولكن من المثير للاهتمام استخدامها داخل تعبيرات calc()
.
li {
animation-delay: calc(0.1s * sibling-index());
}
الترميز الدالي لتقدّم الاستبدال: دالة progress()
في CSS
رمز الدالة progress()
هو دالة رياضية تعرض قيمة
<number>
تمثّل موضع عملية حسابية واحدة (قيمة التقدّم
) بين عمليتَي حساب أخريتَين (قيمة بدء التقدّم وقيمة نهاية التقدّم
).
Viewport Segments Enumeration API
تسمح واجهة Viewport Segments API للمطوّرين بتكييف تخطيط الويب لاستهداف الأجهزة القابلة للطي. تحدِّد أقسام إطار العرض موضعًا وأبعادًا لمنطقة منفصلة منطقيًا من إطار العرض. يتم إنشاء أقسام مساحة العرض عندما يتم تقسيمها بواسطة ميزة أجهزة واحدة أو أكثر (مثل شاشة قابلة للطي أو مفصل بين شاشات منفصلة) تعمل كفاصل. وتكون الأقسام هي مناطق مساحة العرض التي يمكن للمطوّر التعامل معها على أنّها مناطق مختلفة منطقيًا.
واجهات برمجة تطبيقات الويب
إتاحة البيانات الوصفية لاتجاه إطارات الفيديو في WebCodecs
إدخال قيمتَي rotation: int
وflip: bool
في مختلف واجهتَي معالجة
الفيديو في WebCodecs حتى يتمكّن المطوّرون من العمل مع مصادر اللقطات التي تتضمّن
اتجاهًا (على سبيل المثال، كاميرات Android ووسائط معيّنة) توفّر واجهة VideoFrame
إمكانية إنشاء إطارات فيديو مع دوران وقلب عشوائيَين، بالإضافة إلى عناصر وصول إلى هذه المعلومات في عنصر VideoFrame
. يكتسب عنصر
VideoDecoderConfig
حقلَي rotation
وflip
اللذَين يتم بثهما
على عناصر VideoFrame التي تم فك ترميزها تلقائيًا. تحصل فئة VideoEncoder
على
آليات لتمرير معلومات التدوير والقلب من encode()
إلى
VideoDecoderConfig
المنبعثة كجزء من EncodedVideoChunkMetadata
. في حال تمّ استدعاء
encode()
باستخدام إطارات ذات اتجاه مختلف، سيتم طرح استثناء
غير مميت. يمكن استخدام الطريقة configure()
لإعادة ضبط
اتجاه العرض المسموح به.
واجهة برمجة التطبيقات لتقارير الأعطال: is_top_level
وvisibility_state
تضيف هذه الميزة حقلَي السلسلتَين is_top_level
وvisibility_state
إلى is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
visibility_state
is_top_level
��
استخدِم الهروب <
و>
في السمات عند التسلسل.
استخدِم ترميزًا خاصًا للحرفَين <
و>
في قيم السمات عند تسلسلها. يقلل ذلك من خطر هجمات XSS المعدَّلة، التي تحدث عندما تتم ترجمة قيمة سمة على أنّها رمز علامة بداية بعد تسلسلها وإعادة تحليلها.
سياسة سلامة النصوص البرمجية
تتيح ميزة "سلامة الموارد الفرعية" (SRI) للمطوّرين التأكّد من أنّ مواد العرض التي يريدون تحميلها هي مواد العرض التي يتم تحميلها فعلاً. ولكن لا تتوفّر حاليًا
طريقة للمطوّرين للتأكّد من أنّه تم التحقّق من جميع النصوص البرمجية باستخدام SRI.
يمنح العنوان Integrity-Policy
المطوّرين إمكانية التأكيد على أنّه يجب التحقّق من سلامة كل
مورد من نوع معيّن. إذا تم محاولة تحميل مورد من
هذا النوع بدون بيانات وصفية للسلامة، ستؤدي هذه المحاولة إلى
تعذُّر تحميله وسيتم إنشاء تقرير انتهاك.
حصة مساحة تخزين متوقّعة
الإبلاغ عن حصة تخزين متوقّعة من Estimate API في StorageManager للمواقع الإلكترونية التي لا تملك أذونات تخزين غير محدودة من الممكن رصد وضع التصفّح لدى المستخدِم باستخدام حصة التخزين التي تم الإبلاغ عنها لأنّ مساحة التخزين المتوفّرة أصغر بكثير في وضع التصفّح المتخفي مقارنةً بالوضع العادي.
يهدف هذا الإجراء إلى منع رصد وضع التصفّح لدى المستخدم باستخدام واجهة برمجة التطبيقات storage API من خلال الإبلاغ عن حصة مصطنعة تساوي الاستخدام + الحد الأدنى(10 غيغابايت، مساحة التخزين التي يتم تقريبها إلى أقرب غيغابايت واحد)، في جميع أوضاع التصفّح للمواقع الإلكترونية التي تملك أذونات محدودة لمساحة التخزين. ولن تتأثر المواقع الإلكترونية التي لديها أذونات تخزين غير محدودة. ولن تتأثّر أيضًا الحصة المفروضة.
حدث pushsubscriptionchange
عند إعادة الاشتراك
شغِّل الحدث pushsubscriptionchange
في مهام الخدمة عندما يتم منح إذن إعلام
مجدد لمصدر كان لديه اشتراك في خدمة الإشعارات الفورية في السابق، ولكن تم إلغاء هذا الإذن بسبب
تغيير في الإذن (من إذن مُمنوح إلى إذن مرفوض/تلقائي). سيتم تنشيط الحدث باستخدام oldSubscription
و
newSubscription
فارغَين.
قواعد التوقّع: إضافة prefetchCache
وprerenderCache
إلى عنوان Clear-Site-Data
قيمتَان جديدتَان لعنوان Clear-Site-Data
لمساعدة المطوّرين في استهداف
محو ذاكرة التخزين المؤقت للعرض المُسبَق والتحميل المُسبَق: prefetchCache
وprerenderCache
.
ويمكن إرسال هذه الرسائل مع أي طلبات ولا يلزم إرسالها مع طلب المستند (على سبيل المثال، يمكن إرجاعها مع استجابات طلبات واجهة برمجة التطبيقات لإضافة سلعة إلى سلة التسوّق أو تسجيل الدخول أو تسجيل الخروج لإزالة التكهّنات بشأن تغيير الحالة).
قواعد التوقّع: حقل target_hint
يؤدي ذلك إلى توسيع نطاق بنية قواعد التوقّع للسماح للمطوّرين بتحديد الحقل
target_hint
. يقدّم هذا الحقل تلميحًا للإشارة إلى محتوى قابل للتنقّل
سيتم فيه تفعيل صفحة معروضة مسبقًا في النهاية. عند تحديد _blank
كإشارة، يمكن تفعيل صفحة معروضة مسبقًا لصفحة قابلة للتنقّل يتم فتحها
بواسطة window.open()
. الحقل غير متوافق مع ميزة "التحميل المُسبَق".
سياسة صارمة للوصول إلى واجهة برمجة التطبيقات Storage Access API من مصدر موثوق
تعديل دلالات Storage Access API لاتّباع سياسة "المصدر نفسه"
بدقة، في ما يتعلق بالأمان وهذا يعني أنّ استخدام
document.requestStorageAccess()
في إطار لا يؤدي إلا إلى إرفاق ملفات تعريف الارتباط بطلبات
المرسَلة إلى مصدر إطار iframe (وليس الموقع الإلكتروني) تلقائيًا.
Summarizer API
واجهة برمجة تطبيقات JavaScript لإنشاء ملخّصات من النص الذي يتم إدخاله، استنادًا إلى نموذج لغوي مستند إلى الذكاء الاصطناعي
من المتوقّع أن تحصل المتصفحات وأنظمة التشغيل بشكل متزايد على إذن بالوصول
إلى نموذج لغوي. من خلال توفير هذا النموذج المضمّن، نتجنب أن يحتاج كل موقع إلكتروني
إلى تنزيل نموذج لغوي خاص به بحجم عدة غيغابايت أو إرسال نص الإدخال
إلى واجهات برمجة تطبيقات تابعة لجهات خارجية. توفّر واجهة برمجة التطبيقات المخصّصة لتلخيص النصوص على وجه الخصوص واجهة برمجة تطبيقات عالية المستوى
للتفاعل مع نموذج لغوي من أجل تلخيص المدخلات لمجموعة متنوعة
من حالات الاستخدام بطريقة لا تعتمد على نموذج اللغة المحدّد المعني. تتوفّر سياسة مؤسسة (GenAILocalFoundationalModelSettings
)
لإيقاف تنزيل النموذج الأساسي الذي سيؤدي إلى عدم توفّر
واجهة برمجة التطبيقات هذه.
اطّلِع على مزيد من المعلومات في مقالة إنشاء ملخّصات موجزة باستخدام الذكاء الاصطناعي المدمج.
Language Detector API
واجهة برمجة تطبيقات JavaScript لرصد اللغة المستخدَمة في نص معيّن، مع مستويات الثقة يُعدّ هذا الإجراء مكملاً مهمًا للترجمة، وهو ميزة "اكتشاف اللغة"، ويمكن استخدامه مع Translator API. على سبيل المثال، يمكنك معالجة إدخال المستخدم بلغة غير معروفة وتحديد لغته ثم ترجمته إلى لغة مستهدَفة معيّنة. على الرغم من أنّ المتصفّحات غالبًا ما تكون مزوّدة بقدرات الكشف عن اللغة، إلا أنّ هذه الميزة توفّر للمستخدمين إمكانية مماثلة من خلال واجهة برمجة تطبيقات JavaScript، ما يكمل واجهة برمجة التطبيقات للترجمة.
تتوفّر سياسة مؤسسة (GenAILocalFoundationalModelSettings
) لإيقاف تنزيل النموذج الأساسي، ما يؤدي إلى عدم توفّر واجهة برمجة التطبيقات هذه.
اطّلِع على مزيد من المعلومات في مقالة رصد اللغة المستخدَمة باستخدام الذكاء الاصطناعي المدمج.
Translator API
واجهة برمجة تطبيقات JavaScript لتوفير إمكانات ترجمة اللغة لصفحات الويب
على الرغم من أنّ المتصفّحات تقدّم ترجمة اللغات للمستخدمين بشكل متزايد،
يمكن أن تكون إمكانات الترجمة هذه مفيدة أيضًا لمطوّري الويب. وينطبق ذلك
بشكل خاص عندما لا تتمكن إمكانات الترجمة المدمجة في المتصفّح من المساعدة،
مثل الخدمات المباشرة والتفاعلية. تتوفّر سياسة مؤسسة
(GenAILocalFoundationalModelSettings
) لإيقاف تنزيل نماذج
الأساسية، ما يؤدي إلى عدم توفّر واجهة برمجة التطبيقات هذه.
اطّلِع على مزيد من المعلومات في مقالة الترجمة باستخدام تكنولوجيات الذكاء الاصطناعي المدمجة.
إضافات نطاق تطبيق الويب
تُضيف هذه السمة حقل بيان "scope_extensions"
لتطبيق الويب
الذي يتيح لتطبيقات الويب توسيع نطاقها ليشمل مصادر أخرى. يتيح ذلك
عرض المواقع الإلكترونية التي تتحكّم في نطاقات فرعية متعددة ونطاقات من المستوى الأعلى كأحد
تطبيقات الويب الفردية. ويتطلّب ذلك من المواقع الإلكترونية المدرَجة تأكيد الربط بتطبيق الويب
باستخدام ملف إعدادات .well-known/web-app-origin-association
.
Web serial عبر البلوتوث على Android
تتيح هذه الميزة لصفحات الويب وتطبيقات الويب الاتصال بالمنافذ التسلسلية عبر تقنية
البلوتوث على أجهزة Android. يتيح Chrome على Android
الآن استخدام Web Serial API عبر Bluetooth RFCOMM. يتم تفعيل سياسات المؤسسات الحالية
(DefaultSerialGuardSetting
وSerialAllowAllPortsForUrls
SerialAllowUsbDevicesForUrls
وSerialAskForUrls
وSerialBlockedForUrls
)
على الأنظمة الأساسية الأخرى في حالات future_on لنظام التشغيل Android. سيتم تفعيل جميع السياسات
باستثناء SerialAllowUsbDevicesForUrls
بعد تفعيل الميزة. سيتم تفعيل SerialAllowUsbDevicesForUrls
في إصدار مستقبلي بعد أن يقدّم Android دعمًا على مستوى النظام للمنافذ التسلسلية السلكية.
الميزات التي سيتم إيقافها نهائيًا والميزات التي تمت إزالتها
يُجري هذا الإصدار من Chrome عمليات الإيقاف النهائي والإزالة التالية. يُرجى الانتقال إلى ChromeStatus.com للحصول على قوائم بالميزات التي سيتم إيقافها نهائيًا في المستقبل والميزات التي تم إيقافها نهائيًا في الوقت الحالي والميزات التي تم إيقافها نهائيًا في السابق.
يوقف هذا الإصدار من Chrome ميزتَين نهائيًا.
إيقاف نهائي لميزة إزالة النطاق غير المتزامنة في إضافات مصادر الوسائط
تم تغيير معيار Media Source منذ فترة طويلة لحظر السلوك المُعرَّف بشكل غامض الذي يتضمّن عمليات إزالة النطاقات غير المتزامنة:
- لم تعُد
SourceBuffer.abort()
تلغي عملياتSourceBuffer.remove()
. - لم يعُد بإمكان الإعداد
MediaSource.duration
اقتطاع الوسائط التي تم تخزينها مؤقتًا في الوقت الحالي.
سيتم الآن طرح استثناءات في كلتا الحالتَين.
إزالة البديل SwiftShader
تم إيقاف السماح بالرجوع التلقائي إلى WebGL المستند إلى برنامج عرض SwiftShader نهائيًا، ولن يتم إنشاء سياق WebGL بدلاً من الرجوع إلى SwiftShader. تم إجراء ذلك لسببَين رئيسيَّين:
- يشكّل SwiftShader خطرًا أمنيًا كبيرًا بسبب تشغيل الرموز البرمجية التي يتم تحويلها إلى رموز JIT في عملية وحدة معالجة الرسومات في Chromium.
- يحصل المستخدمون على تجربة سيئة عند الرجوع من استخدام WebGL المزوّد بوحدة معالجة رسومات عالية الأداء إلى استخدام عملية تنفيذ مستندة إلى وحدة المعالجة المركزية. لا يمكن للمستخدمين التحكّم في هذا السلوك، ومن الصعب وصفه في تقارير الأخطاء.
خلال فترة الإيقاف النهائي، سيظهر تحذير في كونسول "أدوات مطوّري البرامج في Chrome" عند إنشاء سياق WebGL واستخدام SwiftShader كخيار احتياطي. سيؤدي اجتياز الاختبار
--enable-unsafe-swiftshader
إلى إزالة رسالة التحذير هذه.